﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using Controllerss;
using Core.Contract.DataContract;
using www.Controllers;
//using www.SService;
namespace www.Admin
{
    public partial class ChangePass : System.Web.UI.Page
    {
        #region Value
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly HyServicesClient _service1 = new HyServicesClient();
        private readonly LoginController _loginController=new LoginController();
        private readonly Utility _utility = new Utility();
        #endregion
        #region Contructor
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        #endregion
        #region Event
        protected void Changed(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(txtPassOld.Value))
                {
                    Message("Bạn phải nhập vào mật khẩu hiện tại.");
                    return;
                }
                if (string.IsNullOrEmpty(txtPassword.Value))
                {
                    Message("Bạn phải nhập vào  mật khẩu mới cần thay đổi.");
                    return;
                }
                if (string.IsNullOrEmpty(txtRePassword.Value))
                {
                    Message("Bạn phải nhập lại mật khẩu mới cần thay đổi.");
                    return;
                }
                var lData = (List<RelaxLoginsDataContract>)_cache["Staff"];
                if (lData == null)
                    return;
                var first = lData.FirstOrDefault(p => p.UserName == Convert.ToString(Session["AdminUser"]) && _utility.Decrypt("Dragon_hy", p.Password) == txtPassOld.Value);
                if (first == null)
                {
                    Message("mật khẩu hiện tại không đúng.");
                    return;
                }
                if (txtPassword.Value != txtRePassword.Value)
                {
                    Message("Bạn nhập mật khẩu không chính xác.");
                    return;
                }
                if (txtPassword.Value.Length < 6)
                {
                    Message("Bạn phải nhập mật khẩu tối thiểu 6 ký tự.");
                    return;
                }
                first.Password = _utility.Encrypt("Dragon_hy", txtPassword.Value);
                if (_loginController.UpdateLogin(first))
                {
                    _cache["Staff"] = lData;
                    Response.Redirect("Default.aspx");
                }
            }
            catch (Exception)
            {

            }
        }
        #endregion
        #region Business

        protected void LoadData()
        {
            if (_cache["Staff"] == null)
            {
                var lData = _loginController.GetAllUser();
                if (lData.Any())
                {
                    var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
                    _cache.Set("Staff", lData.ToList(), policy);
                }
            }
        }

        private void Message(string msg)
        {
            Response.Write("<script>alert('" + msg + "');</script>");
        }
        #endregion
    }
}